Skip to content

Add default props to all components to prevent collapse in designer#4

Merged
huangyiirene merged 5 commits intomainfrom
copilot/add-initial-state-to-components
Jan 13, 2026
Merged

Add default props to all components to prevent collapse in designer#4
huangyiirene merged 5 commits intomainfrom
copilot/add-initial-state-to-components

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Jan 13, 2026

Components collapsed into invisible heaps when dragged into the designer due to missing initial dimensions and content.

Changes

Added defaultProps to 40+ component registrations across:

  • Basic (div, text, span, separator) - added minimum dimensions and padding
  • Form (button, input, checkbox, select, textarea, etc.) - added labels, placeholders, sample data
  • Layout (card, tabs) - added titles, descriptions, sample content
  • Data display (alert, avatar, badge) - added sample text and proper sizing
  • Overlay (dialog, drawer, popover, sheet, tooltip, etc.) - added trigger buttons and content
  • Complex (table, carousel, resizable, scroll-area) - added complete sample data structures
  • Navigation (sidebar, header-bar) - added default menu structures
  • Feedback (progress, skeleton, toaster) - added initial values and dimensions

Example before/after:

// Before - component collapses when dropped
ComponentRegistry.register('input', InputComponent, {
  label: 'Input Field',
  inputs: [...]
});

// After - component appears with proper dimensions and content
ComponentRegistry.register('input', InputComponent, {
  label: 'Input Field',
  inputs: [...],
  defaultProps: {
    label: 'Label',
    placeholder: 'Enter text...',
    inputType: 'text',
    id: 'input-field'
  }
});

The Canvas component already spreads defaultProps when creating nodes (lines 67-71), so no designer changes needed.

Tests added to verify all components have defaults and maintain proper structure.

Original prompt

每一个组件都应该有一个初始状态,否则拖到设计器里面缩成一团


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 3 commits January 13, 2026 14:00
Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>
Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>
Co-authored-by: huangyiirene <7665279+huangyiirene@users.noreply.github.com>
Copilot AI changed the title [WIP] Add initial state to all components Add default props to all components to prevent collapse in designer Jan 13, 2026
Copilot AI requested a review from huangyiirene January 13, 2026 14:11
@huangyiirene huangyiirene requested review from Copilot and removed request for huangyiirene January 13, 2026 14:22
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds defaultProps to component registrations to prevent components from collapsing when dragged into the designer. Components now appear with meaningful initial dimensions, content, and configurations.

Changes:

  • Added defaultProps with initial dimensions, labels, placeholders, and sample content to 40+ component registrations
  • Added defaultChildren to container components that require nested elements
  • Added comprehensive test coverage for default props validation

Reviewed changes

Copilot reviewed 42 out of 42 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/renderer/src/renderers/overlay/tooltip.tsx Added default trigger button, content text, delay, and side positioning
packages/renderer/src/renderers/overlay/sheet.tsx Added default title, description, trigger button, and sample content
packages/renderer/src/renderers/overlay/popover.tsx Added default trigger button, content, alignment, and side positioning
packages/renderer/src/renderers/overlay/hover-card.tsx Added default trigger button, hover content, and side positioning
packages/renderer/src/renderers/overlay/dropdown-menu.tsx Added default trigger button and sample menu items with separator
packages/renderer/src/renderers/overlay/drawer.tsx Added default title, description, trigger button, and content
packages/renderer/src/renderers/overlay/dialog.tsx Added default title, description, modal flag, trigger button, and content
packages/renderer/src/renderers/overlay/context-menu.tsx Added default menu items with separator and trigger text
packages/renderer/src/renderers/overlay/alert-dialog.tsx Added default title, description, action/cancel text, and trigger button
packages/renderer/src/renderers/navigation/sidebar.tsx Added default props and children structure for sidebar components
packages/renderer/src/renderers/navigation/header-bar.tsx Added default breadcrumb structure
packages/renderer/src/renderers/layout/tabs.tsx Added default tab items with values and content
packages/renderer/src/renderers/layout/card.tsx Added default title, description, and width class
packages/renderer/src/renderers/form/toggle.tsx Added default label, variant, and size for toggle components
packages/renderer/src/renderers/form/textarea.tsx Added default label, placeholder, and ID
packages/renderer/src/renderers/form/switch.tsx Added default label and ID
packages/renderer/src/renderers/form/slider.tsx Added default value, range, and width
packages/renderer/src/renderers/form/select.tsx Added default label, placeholder, and sample options
packages/renderer/src/renderers/form/radio-group.tsx Added default ID and sample radio items
packages/renderer/src/renderers/form/input.tsx Added default label, placeholder, type, and ID
packages/renderer/src/renderers/form/input-otp.tsx Added default max length
packages/renderer/src/renderers/form/checkbox.tsx Added default label and ID
packages/renderer/src/renderers/form/calendar.tsx Added default mode and border styling
packages/renderer/src/renderers/form/button.tsx Added default label, variant, and size
packages/renderer/src/renderers/feedback/toaster.tsx Added default provider type
packages/renderer/src/renderers/feedback/skeleton.tsx Added default width, height, and styling
packages/renderer/src/renderers/feedback/progress.tsx Added default value and width
packages/renderer/src/renderers/disclosure/collapsible.tsx Added default trigger button, content, and width
packages/renderer/src/renderers/disclosure/accordion.tsx Added default accordion items with content
packages/renderer/src/renderers/data-display/badge.tsx Added default label and variant
packages/renderer/src/renderers/data-display/avatar.tsx Added default fallback initials and alt text
packages/renderer/src/renderers/data-display/alert.tsx Added default title, description, and variant
packages/renderer/src/renderers/complex/table.tsx Added default caption, columns, and sample data rows
packages/renderer/src/renderers/complex/scroll-area.tsx Added default dimensions, orientation, and sample content
packages/renderer/src/renderers/complex/resizable.tsx Added default direction, dimensions, and sample panels
packages/renderer/src/renderers/complex/carousel.tsx Added default orientation, arrows, and sample slides
packages/renderer/src/renderers/basic/text.tsx Added default text content
packages/renderer/src/renderers/basic/span.tsx Added default padding and child text
packages/renderer/src/renderers/basic/separator.tsx Added default orientation and margin
packages/renderer/src/renderers/basic/div.tsx Added default padding, border, and minimum height
packages/renderer/src/tests/registry.test.tsx Added tests for defaultProps and defaultChildren support
packages/renderer/src/tests/defaultProps.test.tsx Added comprehensive test suite validating all component defaults

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions
Copy link
Copy Markdown
Contributor

✅ All checks passed!

  • ✅ Type check passed
  • ✅ Tests passed
  • ✅ Lint check completed

@huangyiirene huangyiirene marked this pull request as ready for review January 13, 2026 14:26
@huangyiirene huangyiirene merged commit 0c94c51 into main Jan 13, 2026
5 checks passed
Copilot AI added a commit that referenced this pull request Jan 24, 2026
- Fix handleExportCSV to guard on gridRef.current?.api (issue #1)
- Add dedicated onContextMenuAction callback instead of overloading onCellClicked (issue #2)
- Remove icon property from customItems to prevent HTML injection (issue #3)
- Remove validation claim from README - only basic AG Grid editing (issue #4)
- Add test assertions for all new inputs (editable, exportConfig, etc.) (issue #5)
- Fix onExport type to only support 'csv' format (issue #6)
- Remove unused ColumnConfig properties (autoSize, groupable) (issue #9)
- Type schema props with proper interfaces instead of 'any' (issue #10)
- Update export description to only mention CSV (issue #11)
- Add AG Grid Community vs Enterprise section to docs (issue #8)
- Update README and docs with new callback and clarifications

All tests pass (8/8), lint clean (0 errors)

Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
Copilot AI added a commit that referenced this pull request Feb 28, 2026
…y chip (#7)

- ConfigRow: add label maxWidth (45%), text truncation with title tooltip for both label and value
- Toolbar section: add summary chip showing "X of Y enabled" at top of expanded section
- Add toolbarEnabledCount i18n key to all 10 locales
- Update view-config-schema tests for new _toolbarSummary field

Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants